package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 收退款-比率表
 *
 * @author Ximi
 * @since 2020-07-13
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9, fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblReceiveRefundRate extends BaseModel implements Serializable {


    /**
     * 渠道编码
     */
    @ExcelProperty(value = "渠道编码")
    @ApiModelProperty(value = "渠道编码")
    private String channelNo;

    /**
     * 渠道名称
     */
    @ExcelProperty(value = "渠道名称")
    @ApiModelProperty(value = "渠道名称", required = true)
    @NotNull(message = "渠道编码不能为空")
    private String channelName;

    /**
     * 店铺编码
     */
    @ExcelProperty(value = "店铺编码")
    @ApiModelProperty(value = "店铺编码", required = true)
    @NotNull(message = "店铺编码不能为空")
    private String shopNo;

    /**
     * 店铺名称
     */
    @ExcelProperty(value = "店铺名称")
    @ApiModelProperty(value = "店铺名称")
    private String shopName;

    /**
     * 活动ID号
     */
    @ExcelProperty(value = "活动ID号")
    @ApiModelProperty(value = "活动ID号", required = true)
    @NotNull(message = "活动ID号不能为空")
    private String actionId;

    /**
     * 活动名称
     */
    @ExcelProperty(value = "活动名称")
    @ApiModelProperty(value = "活动名称")
    private String actionName;

    /**
     * 类型
     */
    @ExcelProperty(value = "类型")
    @ApiModelProperty(value = "类型", required = true)
    @NotNull(message = "类型不能为空")
    private String billType;

    /**
     * 比率
     */
    @ExcelProperty(value = "比率")
    @ApiModelProperty(value = "比率", required = true)
    @NotNull(message = "比率不能为空")
    private BigDecimal rate;

    /**
     *
     */
    @ExcelProperty(value = "金额")
    @ApiModelProperty(value = "金额", required = true)
    @NotNull(message = "金额不能为空")
    private BigDecimal amount;

    /**
     * 机器人确认时间
     */
    @ExcelProperty(value = "机器人确认时间")
    @ApiModelProperty(value = "机器人确认时间")
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
    private Date robotComfirmDate;

    /**
     * 提现日期(返款日期)
     */
    @ExcelProperty(value = "提现日期(返款日期)")
    @ApiModelProperty(value = "提现日期(返款日期)")
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
    private Date extractMoneyDate;

    /**
     * 允许有差异确认
     */
    @ExcelProperty(value = "允许有差异确认")
    @ApiModelProperty(value = "允许有差异确认")
    private String permitDifferentComfire;

    /**
     * 差异确认时间
     */
    @ExcelProperty(value = "差异确认时间")
    @ApiModelProperty(value = "差异确认时间")
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
    private Date differentComfireDate;

}
